Combining network endpoint policy results

ABSTRACT

An endpoint integrity system controls access to resources of a protected network for endpoint devices attempting to access the protected network. The system may include a number of evaluation modules that communicate with an endpoint device. The evaluation modules generate policy results for the endpoint device, in which each of the policy results assume one of three or more states, called a multi-state policy result. The multi-state policy results are combined to produce a combined Boolean policy result.

BACKGROUND

1. Field of the Invention

Concepts described herein relate generally to network access, and more particularly, to network access control systems.

2. Description of Related Art

Organizations are continuously looking to prevent security threats from compromising their internal networks and endpoints (e.g., devices connected to the networks). When endpoints connect to an internal network, such as a proprietary corporate network, it is often desirable for the internal network to perform security checks of the connecting endpoints before granting the endpoint access to the internal network. The security checks may include checks relating to proof of identity of the user using the endpoint, proof of identity of the endpoint itself, and checks relating to the integrity status of the endpoint. The system that performs the security check and selectively grants access to endpoints will be referred to as an endpoint integrity system herein.

The endpoint integrity system may check proof of identity of the user on an endpoint using, for example, password based checks. An integrity status check may include determining the relative purity of the endpoint from software, hardware, and configurations that are considered harmful to the endpoint itself and to other devices with which it interacts. Examples of harmful software that may be inadvertently downloaded onto an endpoint include computer viruses or Trojans.

An endpoint integrity system may use evaluation modules to assist in the various proof of identity and integrity status checks. Each evaluation module may check a different aspect relating to the identity or integrity status of the endpoint. The results of the evaluation modules are then combined into an overall result for an endpoint.

In existing systems, evaluation modules may return a multi-state result that defines the output of the evaluation module. For example, each evaluation module may return an indication that the result of the security policy implemented by the evaluation module is “allow”, “no access”, “isolate”, or “no recommendation”. The results of the evaluation modules may then be combined to determine an overall result for the endpoint.

SUMMARY

In one aspect, a network device includes evaluation modules configured to communicate with an endpoint device, the evaluation modules configured to generate policy results for the endpoint device, each of the policy results being configured to assume one of three or more states. Further, a result combination component combines the generated policy results from the plurality of evaluation modules to produce a combined Boolean policy result.

In another aspect, a method includes receiving a request, from an endpoint, to initiate a connection. The method further includes interacting with the endpoint to obtain policy results relating to a security state of the endpoint, each of the policy results assuming one of three or more possible states. Further, the method includes combining the policy results to obtain a Boolean policy result based on a criterion defined by an expression in which the set of possible operands for the expression includes each of the possible states of the plurality of policy results.

In yet another aspect, a system includes gateway logic to control access between an endpoint and a protected network and logic to interact with the endpoint to obtain policy results relating to a security state of the endpoint, each of the policy results assuming one of three or more possible states. The system further includes logic to combine the plurality of policy results to obtain a Boolean policy result and logic to control access to resources of the protected network for the endpoint based on the Boolean policy result.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate an embodiment of the invention and, together with the description, explain the invention. In the drawings,

FIG. 1 is a diagram of an exemplary system;

FIG. 2 is an exemplary block diagram of a device that may correspond to one of the devices shown in FIG. 1;

FIG. 3 is a diagram conceptually illustrating exemplary interaction of an endpoint and a policy decision component in determining policy results for the endpoint;

FIG. 4 is a diagram conceptually illustrating the operation of a policy decision component in combining policy results for an endpoint from multiple evaluation modules;

FIG. 5 is a flowchart of exemplary operations of an endpoint integrity system; and

FIG. 6 is a diagram of an exemplary interface presented by a network device for configuring criteria relating to how policy results are to be combined.

DETAILED DESCRIPTION

The following detailed description of the invention refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements. Also, the following detailed description does not limit the invention. Instead, the scope of the invention is defined by the appended claims and equivalents.

As described herein, an endpoint integrity system may use evaluation modules to check whether individual security policies are met by an endpoint. The results returned by the evaluation modules may be capable of taking three or more states. The endpoint integrity system combines the security policy results to a Boolean result (e.g., pass/fail) which may be used to enforce a higher level security policy.

Exemplary System Overview

FIG. 1 is a diagram of an exemplary system 100. System 100 may include an open network 170 and a protected network 180, such as a proprietary corporate network. Client devices 110-A and 110-B, also called endpoints herein, may connect to and access resources 150 in protected network 180. Protected network 180 may include one or more components designed to provide for the enforcement of security and/or access related policies. As shown in FIG. 1, these components include a gateway network device 120, a policy decision component 130, and a policy enforcement component 140. Policy decision component 130 and policy enforcement component 140, in particular, may together be associated with an endpoint integrity system 145.

Protected network 180 may include a number of resources 150, such as corporate web servers, that clients on the network may access. The resources may include, for example, resources relating to email applications, corporate files or databases, network access, and computing resources such as various corporate applications. In some implementations, it may be desirable to enforce access restrictions for various ones of resources 150. For example, only certain users may be permitted to access certain resources.

Gateway network device 120 may serve as a gateway to open network 170. Gateway network device 120 may generally control access with open network 170 and may include a firewall. Open network 170 may include a wide area network (WAN), a telephone network, such as the Public Switched Telephone Network (PSTN), or a combination of networks. Open network 170 may include the Internet. Open network 170 may also be a wireless network or a wired network accessible from open areas of a corporate office. Open network 170 may also be a network which users attach their endpoints directly to, while protected network 180 contains resources which administrators want to protect.

Endpoint 110-A may connect to protected network 180 over open network 170 and through gateway network device 120. Endpoint 110-B, in contrast, may reside within and connect directly to protected network 180. In either case, endpoint integrity system 145 may operate to control access to resources 150 by endpoints 110-A and 110-B. For example, protected network 180 may include equipment such as 802.1X-enabled switches which force all endpoints attaching to protected network 180 to request access from the endpoint integrity system 145 before being allowed access to the network.

Policy decision component 130 may generally operate to make policy decisions relating to the access of resources 150 by endpoints 110-A and 110-B. Policy decisions made by policy decision component 130 may be enforced by policy enforcement component 140. Policy enforcement component 140 may, for example, control various resources 150 to be available or unavailable to an endpoint based on the policy decisions corresponding to the endpoint.

Two endpoints 110-A and 110-B, and a single gateway network device 120, policy decision component 130, and policy enforcement component 140 have been illustrated in FIG. 1 for simplicity. In practice, there may be more endpoints 110, gateway network devices 120, policy decision components 130, and policy enforcement components 140. Also, the functions performed by gateway network device 120, policy decision component 130, and policy enforcement component 140, may, in some implementations, be combined and implemented on one or two hardware devices. Further, in some implementations, certain ones of the devices shown in FIG. 1, such as gateway network device, may not be present or may nor participate in the techniques described herein.

Exemplary Device Architecture

FIG. 2 is a block diagram of an exemplary device 200, which may correspond to an endpoint 110-A or 110-B, network device 120, policy decision component 130, policy enforcement component 140, or gateway network device 120. Device 200 includes a bus 210, a processor 220, a main memory 230, a read only memory (ROM) 240, a storage device 250, an input device 260, an output device 270, and a communication interface 280. Bus 210 may include a path that permits communication among the elements of the device.

Processor 220 may include a processor, microprocessor, or processing logic that may interpret and execute instructions. Main memory 230 may include a random access memory (RAM) or another type of dynamic storage device that may store information and instructions for execution by processor 220. ROM 240 may include a ROM device or another type of static storage device that may store static information and instructions for use by processor 220. Storage device 250 may include a magnetic and/or optical recording medium and its corresponding drive.

Input device 260 may include a mechanism that permits an operator to input information to the device, such as a keyboard, a mouse, a pen, voice recognition and/or biometric mechanisms, etc. Output device 270 may include a mechanism that outputs information to the operator, including a display, a printer, a speaker, etc. Communication interface 280 may include any transceiver-like mechanism that enables the device to communicate with other devices and/or systems.

Device 200 may perform certain operations, as described in detail below. The device may perform these operations in response to processor 220 executing software instructions contained in a computer-readable medium, such as memory 230. A computer-readable medium may be defined as a physical or logical memory device.

The software instructions may be read into memory 230 from another computer-readable medium, such as data storage device 250, or from another device via communication interface 280. The software instructions contained in memory 230 may cause processor 220 to perform processes that will be described later. Alternatively, hardwired circuitry may be used in place of or in combination with software instructions to implement processes consistent with the principles of the invention. Thus, implementations consistent with the principles of the invention are not limited to any specific combination of hardware circuitry and software. Additionally, although only a single element 220, 230, 240, 250, 260, 270, and 280 are shown in FIG. 2, one of ordinary skill in the art will recognize that device 200 could include more than one of any of these elements, such as multiple processors 220 or multiple communication interfaces 280.

Evaluation Modules

An endpoint 110 may include a number of evaluation modules that each perform a function, such as a security related function, at the endpoint. Policy decision component 130 may include a number of corresponding modules that communicate with the endpoint modules and each generate a policy result. The policy result may be a result capable of taking on three or more states, such as a tri-state result (e.g., pass/fail/isolate).

FIG. 3 is a diagram conceptually illustrating the interaction of an endpoint and a policy decision component in determining policy results for the endpoint. In this example, endpoint 110-A and policy decision component 130 are illustrated as communicating over open network 170. In other possible implementations, endpoint 110-A and policy decision component 130, instead of communicating over open network 170, may both communicate from within protected network 180. Endpoint 110-A includes three evaluation modules 310-A, 310-B, and 310-C. Policy decision component 130 includes three corresponding “server-side” evaluation modules 320-A, 320-B, and 320-C. Although three evaluation modules are shown at each of endpoint 110 and policy decision component 130, more generally, endpoints and policy decision component 130 may include an arbitrary number of evaluation modules.

Each of evaluation modules 310 may be preinstalled on endpoint 110-A and may perform a security function at endpoint 110-A. For example, evaluation module 310-A may check endpoint 110-A to determine whether an approved firewall is active at the endpoint, evaluation module 310-B may determine whether antivirus software is installed, and evaluation module 310-C and may determine whether anti-spyware software is installed.

Modules 320-A, 320-B, and 320-C may correspond to modules 310-A, 310-B, and 310-C, respectively, at endpoint 110-A. In other words, modules 310-A and 320-A may be designed to communicate with one another in order to exchange or determine the appropriate policy information (e.g., the appropriate policy information relating to whether an approved firewall is active at endpoint 110-A). Modules 310-B and 320-B, and 310-C and 320-C may be similarly designed to work in conjunction with one another.

One known standard for implementing corresponding evaluation modules at various endpoints and servers (e.g., policy decision component 130) is the TCG Trusted Network Connect architecture, distributed by the Trusted Computing Group. Evaluation modules conforming to this standard output a security policy result that may take one of four states, known as the allow, no access, isolate, and no recommendation states.

Policy Decision Component 130

Consistent with an implementation described herein, policy decision component 130 may be configured to combine policy results for an endpoint from multiple evaluation modules 320 to obtain a combined policy result. The combined policy result may be a Boolean result while the individual policy results from evaluation modules 320 may be multi-state (i.e., tri-state or greater) values. The combined policy result may be directly used by policy enforcement component 140 to control resource access for an endpoint or the combined policy result may be used to influence a higher level policy decision.

FIG. 4 is a diagram conceptually illustrating the operation of policy decision component 130 in combining policy results for an endpoint from multiple evaluation modules 320. In this example, assume that evaluation module 320-A (“firewall”) outputs an indication of whether an approved firewall is active at the endpoint, evaluation module 320-B (“antivirus”) outputs an indication of whether approved anti-virus software is active at the endpoint, and evaluation module 320-C (“spyware”) outputs an indication of whether approved anti-spyware software is active at the endpoint. Further, assume that each module outputs a tri-state policy result that includes one of the three states: pass, fail, and isolate. Pass may indicate that the endpoint satisfied the policy, fail may indicate that the endpoint did not satisfy the policy, and isolate may indicate that the endpoint did not satisfy the policy but that remediation is possible.

As shown in FIG. 4, policy decision component 130 may include result combination component 410. Result combination component 410 may operate to combine the multi-state policy results from evaluation modules 320-A, 320-B, and 320-C to obtain a single Boolean (i.e., two state) output policy result, indicated in FIG. 4 as a “pass” result or a “fail” result. Result combination component 410 may combine the input policy results based on predefined criteria, such as criteria predefined by an administrator of policy decision component 130.

The criteria predefined by the administrator may be a custom Boolean expression in which the set of possible operands includes each state from each evaluation module. Evaluation module 320-A (firewall), for example, includes three possible operands: firewall.pass, which may take the value true or false; firewall.fail, which may take the value true or false; and firewall.isolate, which may take the value true or false. As an example of a predefined criterion on which result combination component 410 may operate to obtain a single Boolean policy result, consider the following criterion:

(antivirus.pass OR antivirus.isolate) AND (spyware.pass or spyware.isolate); where “antivirus” refers to evaluation module 320-B and “spyware” refers to evaluation module 320-C. This criterion would evaluate to true (pass) when evaluation module 320-B (antivirus) and evaluation module 320-C (spyware) both return either a “pass” or “isolate” policy result. Another, alternate expression, for this this criterion is:

-   -   !antivirus.fail AND !spyware.fail,         where “!” represents the NOT operator.

Exemplary Processing

FIG. 5 is a flowchart of an exemplary operation of endpoint integrity system 145.

An endpoint may initiate a connection to protected network 180 (act 501). For example, a remote user may wish to connect to resources 150 of protected network 180 to access email or files. The remote user may connect to protected network 180 over open network 170 and through gateway network device 120. Alternatively, a user initially connecting within protected network 180, such as client 110-B, may initiate the connection.

As previously mentioned, the connecting endpoint may be associated with a number of evaluation modules, such as evaluation modules 310, that each correspond to an associated evaluation module 320 at policy decision component 130. These evaluation modules may interact with one another to generate individual multi-state policy results (act 502). These individual multi-state policy results may each be capable of taking three or more states.

The individual multi-state policy results may then be combined to generate a combined policy result (act 503). The combined policy result may be a Boolean value. In other words, the combined policy result may be capable of assuming two possible values, such as true/false or pass/fail. Result combination component 410 may generate the combined policy result using criteria predefined by an administrator. As discussed above, the predefined criteria may be a custom Boolean expression in which the set of possible operands includes each state from each evaluation module.

The combined policy result may then be transmitted to policy enforcement component 140, which enforces access restrictions to resources 150, as indicated by the combined policy result (act 504). For example, policy enforcement component 140 may allow the user to access an email account but determine that the user is to have limited or no access to a file server of protected network 180.

In some implementations, policy enforcement component 140 may receive a number of different combined policy results from policy decision component 130. Policy enforcement component 140 may then enforce different access restrictions based on the different combined policy results. For example, an administrator may specify that policy results from evaluation modules 320-A and 320-B are combined using first predefined criteria to produce a first combined policy result while policy results from evaluation modules 320-B and 320-C are combined using second predefined criteria to produce a second combined policy result. Each of the first and second combined policy results may relate to different access restrictions. In other possible implementations, multiple ones of the combined policy results may be further combined to obtain a higher level policy result.

FIG. 6 is a diagram illustrating an exemplary interface presented by a network device, such as policy decision component 130, for configuring criteria relating to how policy results from evaluation modules 320 are to be combined. In this example, assume that the administrator has logged into policy decision component 130 using a web browser via an HTTP connection. The network device may present an interface 600 through which the administrator can configure the network device. In the example interface 600, checkboxes 605 are used to allow the administrator to select which of the available evaluation modules the administrator would like to include in the policy. In this example, the evaluation modules named “antivirus” and “spyware” are selected. Selection buttons 610, 620, and 630 may be used to configure how the results from the selected evaluation modules are to be combined. When button 610, “all must pass,” is selected, the policy is set so that all of the selected evaluation modules must produce a pass result for the policy result to be true (e.g., pass). When button 620, “at least one must pass,” is selected, the policy is set so that at least one of the selected evaluation modules must produce a pass result for the policy result to be true (e.g., pass). When button 630, “custom,” is selected, the policy result is based on predefined criteria that may be entered by the administrator in box 635. The predefined criteria, as discussed above, may be a expression in which the set of possible operands includes each state from each selected evaluation module. In this example, the administrator has entered “antivirus.pass AND (spyware.pass OR spyware.isolate),” which will produce a pass policy result when the “antivirus” evaluation module produces a pass result and the “spyware” evaluation module does not produces a “pass” or “isolate” result. One of ordinary skill in the art will recognize that the specific syntax used to represent the predefined criteria is not critical. For example, another equivalent implementation of the above expression may be written as: “antivirus==pass AND (spyware==pass OR spyware==isolate).”

CONCLUSION

Implementations consistent with the principles of the invention, as described above, relate to techniques through which multi-state (three or more state) policy results can be combined to produce a two-state (Boolean) policy result.

The foregoing description of preferred embodiments of the invention provides illustration and description, but is not intended to be exhaustive or to limit the invention to the precise form disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from practice of the invention.

For example, while a series of acts has been described with regard to FIG. 5, the order of the acts may differ in other implementations consistent with the principles of the invention. Also, non-dependent acts may be performed in parallel.

It will also be apparent to one of ordinary skill in the art that aspects of the invention, as described above, may be implemented in many different forms of software, firmware, and hardware in the implementations illustrated in the figures. The actual software code or specialized control hardware used to implement aspects consistent with the principles of the invention is not limiting of the present invention. Thus, the operation and behavior of the aspects were described without reference to the specific software code—it being understood that one of ordinary skill in the art would be able to design software and control hardware to implement the aspects based on the description herein.

Further, certain portions of the invention may be implemented as “logic” or as a “component” that performs one or more functions. This logic or component may include hardware, such as an application specific integrated circuit or a field programmable gate array, software, or a combination of hardware and software.

No element, act, or instruction used in the present application should be construed as critical or essential to the invention unless explicitly described as such. Also, as used herein, the article “a” is intended to include one or more items. Where only one item is intended, the term “one” or similar language is used. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise. 

1-27. (canceled)
 28. A method comprising: identifying, by a processor, a plurality of policy results relating to a security state of a network device, the plurality of policy results including a first policy result and a second policy result, each policy result, of the plurality of policy results, being associated with a respective plurality of states, and a first plurality of states, associated with the first policy result, including: a pass state, a fail state, and another state that differs from the pass state and the fail state; determining, by the processor, information associated with a criterion, the information identifying: a first state of the first plurality of states, and a second state of a second plurality of states associated with the second policy result; evaluating, by the processor and based on the criterion, the network device to generate an evaluation result; and outputting, by the processor, the evaluation result to the network device.
 29. The method of claim 28, where the other state, included in the first plurality of states, corresponds to at least one of: a state associated with the isolating the network device within a network, or a state related to denying a request from the network device.
 30. The method of claim 28, where the evaluation result relates to confirming at least one of: an integrity status of the network device, an identity of a user of the network device, an identity of the network device, a presence of security-related hardware associated with the network device, or a presence security-related software associated with the network device.
 31. The method of claim 30, where: the evaluation result relates to confirming the presence of the security-related hardware associated with the network device and the presence of the security-related software associated with the network device, the security-related hardware includes a firewall, and the security-related software includes at least one of an antivirus software associated with the firewall or an anti-spyware software associated with the firewall.
 32. The method of claim 28, further including: controlling access, by the network device, to network resources based on the evaluation result.
 33. The method of claim 28, where the information associated with the criterion further includes a Boolean operator identifying a relationship between the first state and the second state, and where the Boolean operator includes at least one of: an AND operator, an OR operator, or a NOT operator.
 34. The method of claim 28, further comprising: receiving a user input; and determining the criterion based on the user input.
 35. A device comprising: a memory; and one or more processors to: store, in the memory, data identifying: a plurality of policy tests, and a respective plurality of possible states associated with each policy test of the plurality of policy tests, the plurality of policy tests including a first policy test and a second policy test, and a first plurality of states, associated with the first policy test, including: a pass state, a fail state, and another state that differs from the pass state and the fail state; receive an expression that identifies: a first state of the first plurality of states, and a second state of a second plurality of states associated with the second policy test, receive a request from a network device, obtain, based on receiving the request, status information for the network device, the status information identifying: a first particular state, of the first plurality of states, associated with the network device for the first policy test, and a second particular state, of the second plurality of states, associated with the network device for the second policy test, evaluate status information, based on a comparison of the first particular state and the second particular state to the expression, to form an evaluation result, and forward, to the network device, a response to the request based on the evaluation result.
 36. The device of claim 35, where the one or more processors are further to: provide a user interface, receive, via the user interface, an input, and form the expression based on the input.
 37. The device of claim 35, where the request relates to access, by the network device, to one or more network resources, and where the one or more processors are further to: regulate the access, by the network device, to the one or more network resources, based on the evaluation result.
 38. The device of claim 37, where the one or more processors, when forwarding the response, are further to: include, in the response, data that enables the access, by the network device, to the one or more network resources.
 39. The device of claim 35, where the expression further identifies a Boolean operator identifying a relationship between the first state and the second state, where the Boolean operator include at least one of an AND operator, an OR operator, or a NOT operator.
 40. The device of claim 35, where the other state includes at least one of: a state associated with isolating the network device from another component of a network, or a state associated with denying the request regardless of the second state.
 41. The device of claim 35, where the one or more processors, when obtaining the status information for the network device, are further to: establish a connection to the network device, exchange, via the connection, data with the network device, determine the status information based on the exchanged data.
 42. A non-transitory computer-readable medium to store instructions, the instructions comprising: one or more instructions that, when executed by a processor, cause the processor to receive an expression that identifies: a first state of a first plurality of states associated with a first policy, the first plurality of states including: a pass state, a fail state, and another state that differs from the pass state and the fail state; a second state of a second plurality of states associated with a second policy that is different from the first policy; one or more instructions that, when executed by the processor, cause the processor to obtain status information for a network device, the status information identifying: a first particular state, of the first plurality of states, associated with the network device, and a second particular state, of the second plurality of states, associated with the network device; one or more instructions that, when executed by the processor, cause the processor to evaluate the first particular state and the second particular state, based on the expression, to form an evaluation result; and one or more instructions that, when executed by the processor, cause the processor to regulate access, by the network device, to a network resource based on the evaluation result.
 43. The non-transitory computer-readable medium of claim 42, where the one or more instructions to receive the expression further include: one or more instructions to provide a user interface one or more instructions to receive, via the user interface, an input, and one or more instructions to form the expression based on the input.
 44. The non-transitory computer-readable medium of claim 42, where the other state relates to at least one of: isolating the network device, or recommending against enabling the access, by the network device, to the network resource.
 45. The non-transitory computer-readable medium of claim 42, where the one or more instructions to obtain the status information for the network device further include: one or more instructions to receive first information from the network device; one or more instructions to process the first information to determine the first particular state; and one or more instructions to receive, from another device that differs from the network device, second information identifying the second particular state.
 46. The non-transitory computer-readable medium of claim 42, where the expression further includes a logical Boolean operator identifying a relationship between the first state and the second state.
 47. The non-transitory computer-readable medium of claim 46, where: the expression is a first expression, the logical Boolean operator is a first logical Boolean operator, the evaluation result is a first evaluation result, and the one or more instructions to regulate the access, by the network device, to the network resource, further include: one or more instructions to receive a second expression that differs from the first expression, the second expression identifying: another first state of the first plurality of states, another second state of the second plurality of states, and a second logical Boolean operator; one or more instructions to evaluate the first particular state and the second particular state, based on the second expression, to form a second evaluation result associated with the network device; and one or more instructions to regulate the access, by the network device, to the network resource based on the first evaluation result and the second evaluation result. 